﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Review
{
    class Interface
    {
        static void Main(string[] args)
        {
            // 1、猫、狗、鸭、猴，（吃、游泳、爬树）
            //所有动物都有吃的方法
            //狗和鸭会游泳，不会爬树
            //猫和猴不会游泳会爬树
            //将吃的方法定义在父类方法中，
            //将游泳和爬树的技能定义为接口
            //所有子类继承父类后，再去继承相应的接口实现技能
            dog d = new dog("小狗");
            d.eat();
            d.Iswim();
            Console.WriteLine();
            Cat c = new Cat("小猫");
            c.eat();
            c.Itree();
            Console.WriteLine();
            duck du = new duck("小鸭");
            du.eat();
            du.Iswim();
            Console.WriteLine();
            monkey m = new monkey("小猴");
            m.eat();
            m.Itree();
            Console.WriteLine();

            //定义一个父类表示车的共同属性特征行为：品牌名Brand，会跑Run方法
            //定义一个飞的功能接口类IFly：定义飞的方法Fly
            //然后定义蝙蝠战车类继承Cat类和飞的接口
            //在主方法实例化蝙蝠战车的对象，并为品牌名赋值，调用跑和飞的方法
            BatCar batCar = new BatCar("蝙蝠战车");
            batCar.run();
            batCar.fly();

            Console.WriteLine();

            //1.飞机是交通工具类，有运输载人的功能；
            //2.小鸟和超人都是动物类，都有吃的方法；小鸟有自己的特有方法，下蛋；
            //3.超人、小鸟、飞机都有飞的功能，可以定义飞的接口;
            //飞的接口有起飞、飞行中、着陆的方法；
            //4.超人、小鸟、飞机除了继承各自的父类后，还要继承飞的接口，实现飞的接口的方法；
            Bird bird = new Bird("小鸟");
            bird.eat();
            bird.ReadytoFly();
            bird.Fly();
            bird.Landd();
            Console.WriteLine();
            Superman superman = new Superman("超人");
            superman.eat();
            superman.ReadytoFly();
            superman.Fly();
            superman.Landd();
            Console.WriteLine();
            Plane plane = new Plane("飞机");
            plane.CarryingPeople();
            plane.ReadytoFly();
            plane.Fly();
            plane.Landd();

        }
    }
}
